package Transforming_Observables

import (
	"fmt"
	"github.com/reactivex/rxgo/v2"
)

// 把一个观察集合中的对象转化成一个可观察集合，然后吧这些转化后的可观察集合扁平话加入到输出的一个可观察集合中
func Demo_FlatMap() {
	fmt.Println("Demo_BufferWithCount###########################")
	// 按照数量打包 BufferWithCount
	observable := rxgo.Just(1, 2, 3)().FlatMap(func(i rxgo.Item) rxgo.Observable {
		return rxgo.Just(i.V.(int)*10, i.V.(int)*100)()
	})
	for item := range observable.Observe() {
		if item.Error() {
			fmt.Println("订阅：", item.E)
		}
		fmt.Println("订阅：", item.V)
	}
}
